package com.itheima.singleinstance; // 声明这个类属于com.itheima.singleinstance包，用于组织代码结构

// 设计成单例设计模式 // 注释说明这个类使用了单例设计模式
public class A { // 定义一个名为A的公开类
    // 2、定义一个静态变量，用于存储本类的一个唯一对象。 // 第二步：创建静态变量存储唯一实例
    // public static final A a = new A(); // 注释掉的饿汉式实现（直接公开静态常量）
    private static A a = new A(); // 定义私有的静态成员变量a，并立即创建A类的实例赋给它（饿汉式单例）

    // 1、私有化构造器: 确保单例类对外不能创建太多对象，单例才有可能性。 // 第一步：私有化构造方法
    private A() { // 将构造方法设为私有的，这样外部就不能通过new来创建A类的实例
    }

    // 3、提供一个公开的静态方法，返回这个类的唯一对象。 // 第三步：提供公开的获取实例方法
    public static A getInstance() { // 定义公开的静态方法getInstance()，用于返回A类的唯一实例
        return a; // 返回之前创建好的静态变量a，也就是A类的唯一实例
    }
}
